package com.sinosoft.vaccinetoai.utils;

import java.security.MessageDigest;

/**
 * @ClassName: MD5Util
 * @ClassNameExplain:
 * @Description: MD5工具类
 * @author wudan-mac
 * @date 16/5/3 下午6:21
 */
public class MD5Util {

	private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
			"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

	/**
	 * @Title: byteArrayToHexString
	 * @TitleExplain:
	 * @Description: byte数组 转16进制
	 * @param
	 * @return java.lang.String
	 * @version
	 * @author wudan-mac
	 */
	private static String byteArrayToHexString(byte b[]) {

		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++)
			resultSb.append(byteToHexString(b[i]));

		return resultSb.toString();
	}

	/**
	 * @Title: byteToHexString
	 * @TitleExplain:
	 * @Description: byte 转16进制
	 * @param
	 * @return java.lang.String
	 * @version
	 * @author wudan-mac
	 */
	private static String byteToHexString(byte b) {
		int n = b;
		if (n < 0)
			n += 256;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}

	/**
	 * @Title: MD5Encode
	 * @TitleExplain:
	 * @Description: MD5加密
	 * @param
	 * @return java.lang.String
	 * @version
	 * @author wudan-mac
	 */
	public static String MD5Encode(String origin, String charsetname) {

		String resultString = null;
		try {
			resultString = new String(origin);
			MessageDigest md = MessageDigest.getInstance("MD5");
			if (charsetname == null || "".equals(charsetname))
				resultString = byteArrayToHexString(md.digest(resultString
						.getBytes()));
			else
				resultString = byteArrayToHexString(md.digest(resultString
						.getBytes(charsetname)));
		} catch (Exception exception) {
		}
		return resultString;
	}


	public static void main(String[] args) {
		System.out.println(MD5Encode("FZ201907111253" + "123456",""));
	}

}
